CommCSL: Proving Information Flow Security for Concurrent Programs using Abstract Commutativity
نویسندگان
چکیده
Information flow security ensures that the secret data manipulated by a program does not influence its observable output. Proving information is especially challenging for concurrent programs, where operations on may execution time of thread and, thereby, interleaving between different threads. Such internal timing channels affect outcome even if an attacker observe times. Existing verification techniques in programs attempt to prove relative However, these are often restrictive (for instance because they disallow branching data) and make strong assumptions about platform (ignoring caching, processor instructions with data-dependent runtime, other common features time). In this paper, we present novel technique secure lifts restrictions any behavior. The key idea all mutating performed shared commute, such interleavings do final value. Crucially, commutativity required only abstraction contains will be leaked public Abstract satisfied many more than standard commutativity, which makes our widely applicable. We formalize CommCSL, relational separation logic support commutativity-based reasoning, soundness Isabelle/HOL. implemented CommCSL HyperViper, automated verifier based Viper infrastructure, demonstrate ability verify examples.
منابع مشابه
Compositional information flow security for concurrent programs
We present a general unwinding framework for the definition of information flow security properties of concurrent programs, described in a simple imperative language enriched with parallelism and atomic statement constructors. We study different classes of programs obtained by instantiating the general framework and we prove that they entail the noninterference principle. Accurate proof techniq...
متن کاملA Theorem Proving Approach to Secure Information Flow in Concurrent Programs (Extended Abstract)
We present an approach to formally prove secure information flow in multi-threaded programs. We start with a precise formalization of noninterference in dynamic logic and then use the rely/guarantee approach to reduce this to thread-modular properties, that can be checked locally. A sound and complete calculus ensures that these properties can be proven without false positives. Currently, we wo...
متن کاملData Flow Analysis Frameworks for Concurrent Programs (extended Abstract)
In this abstract, we present complete-lattice data ow analysis frameworks. These are a generalization of semi-lattice based data ow analysis frameworks and are designed to support the description and solution of data ow analysis problems over ow graphs for concurrent programs. We describe the limitations of existing data ow frameworks as applied to concurrent programs; these limitations are add...
متن کاملProving Properties of Concurrent Programs
How do you prove the correctness of multi-threaded code? This question has been asked since at least the mid-sixties, and it has inspired researchers ever since. Many approaches have been tried, based on mathematical theories, the use of annotations, or the construction of abstractions. An ideal solution would be a tool that one can point ations. An ideal solution would be a tool that one can p...
متن کاملProving liveness properties of concurrent programs using petri-nets
With the increased scale of distributed computations the complexity of liveness proofs have increased. In this paper we endeavor to simplify the process of verifying a concurrent system using well know modeling techniques. The choice of modeling tool as well as the proof is based on future scalability and automation. We translate the formal proof to a petri-net representation and use this to ve...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2023
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3591289